package library.client.domain.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 借阅记录实体类
 *
 * 
 *
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("borrow_records")
public class BorrowRecord implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 借阅记录唯一标识符，自增主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 借阅用户的唯一标识符（关联到用户表）
     */
    private Long userId;

    /**
     * 借阅图书的唯一标识符（关联到图书复本表）
     */
    private Long bookCopiesId;

    /**
     * 借阅日期，默认设置为当前时间
     */
    private LocalDateTime borrowDate;

    /**
     * 应还日期，默认设置为借阅时间地后30天
     */
    private LocalDateTime dueDate;

    /**
     * 归还日期，可为空
     */
    private LocalDateTime returnDate;

    /**
     * 借阅状态，默认值为借阅中(2逾期、1借阅中、0已归还)
     */
    private Integer status;

    /**
     * 记录创建时间，默认设置为当前时间
     */
    private LocalDateTime createdAt;

    /**
     * 记录更新时间，自动更新为当前时间
     */
    private LocalDateTime updatedAt;
}
